Cloud-based component linking in a smart window system

ABSTRACT

A method includes identifying components of a smart window system. The components include electrochromic devices, drivers, and one or more gateways. Each of the drivers is to control a corresponding electrochromic device and each of the drivers is to receive instructions from a server device via a corresponding gateway. The method further includes determining physical linking, network linking, and application linking of the smart window system. The method further includes displaying, via a graphical user interface (GUI), the components of the smart window system, the physical linking, the network linking, and the application linking. The method further includes determining a first component of the plurality of components is to be replaced by a new component, causing the new component to be configured based on configurations of the first component, and updating the GUI based on the new component that has been configured based on the configurations of the first component.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional No. 62/805,096,filed Feb. 13, 2019, the entire contents of which are incorporated byreference.

BACKGROUND

An electrochromic glass unit uses electrochromic glass that can changetransmissivity with the application of electric current and voltage. Thechange of transmissivity typically relies on a reversible oxidation of amaterial. Electrochromic glass units can darken at the press of a buttonor other triggering events and are also often used in automobilerearview mirrors to reduce reflective glare.

BRIEF DESCRIPTION OF DRAWINGS

The present disclosure will be understood more fully from the detaileddescription given below and from the accompanying drawings of variousembodiments, which, however, should not be taken to limit the presentdisclosure to the specific embodiments, but are for explanation andunderstanding only.

FIG. 1 is a block diagram of an electrochromic window system, accordingto certain embodiments.

FIG. 2 is a block diagram of an electrochromic window system including acloud-based component linking module, according to certain embodiments.

FIG. 3 is a flow diagram of a method of controlling an electrochromicdevice, according to certain embodiments.

FIGS. 4A-J are graphical user interfaces (GUIs) for cloud-basedcomponent linking, according to certain embodiments.

FIG. 5 illustrates a diagrammatic representation of a machine in theexample form of a computer system including a set of instructionsexecutable by a computer system for cloud-based component linkingaccording to any one or more of the methodologies discussed herein.

DETAILED DESCRIPTION

Cloud-based component linking in a smart window system is described.Electrochromic devices can be, for example, used for smart windows in acommercial or residential building. A smart window refers to one or moreglass units whose characteristics (e.g., a tint level representing aparticular transmissivity parameter, reflective glare, etc.) can bechanged automatically (e.g., at a particular time, in response to aweather condition, etc.). A modern multi-story building can includethousands of external and internal windows. As such, controllingelectrochromic devices in an efficient manner becomes increasinglyimportant.

Conventional systems typically use local computers to controlelectrochromic devices via one or more local networks. However, the useof local computers has several deficiencies. Firstly, for eachelectrochromic device, the local computer may transmit instructions to acorresponding driver and the driver may control the electrochromicdevice. A user may manually update the local computer based on theamount, type, and configuration of drivers and the electrochromicdevices. The manual updates from the user may include errors. The localcomputer may not provide a graphical representation of the components(e.g., drivers, electrochromic devices, etc.) of the smart windowsystem. To replace a component (e.g., a driver) of the smart windowsystem, a user may initiate the previous component, download theconfigurations of the previous component, initiate the new component,upload the configurations to the new component from the previouscomponent, and manually update the local computer based on the newcomponent. If the previous component is unable to initiate (e.g., if adriver that is to be replaced cannot turn on), the user may not be ableto configure the new component based on the previous component.

Aspects of the present disclosure address the deficiencies ofconventional systems by providing cloud-based component linking in asmart window system. A processing device of a cloud computing system mayidentify components of the smart window system. The components mayinclude electrochromic devices, drivers, and one or more gateways. Eachof the drivers may control a corresponding electrochromic device. Eachof the drivers may receive instructions from a server device via acorresponding gateway. The processing device may determine physicallinking (e.g., physical linking of each electrochromic device to acorresponding driver), network linking (e.g., network linking of eachdriver to a corresponding gateway), and application linking (e.g.,application linking of one or more subsets of the electrochromicdevices). The processing device may display, via a graphical userinterface (GUI), a graphical representation of the components of thesmart window system, the physical linking, the network linking, and theapplication linking. The processing device may determine a firstcomponent to be replaced by a new component, cause the new component tobe configured based on configurations of the first component, and updatethe GUI based on the new component.

In some embodiments, the processing device receives an electronic model(e.g., computer aided drafting (CAD) file) of a building and theprocessing device identifies the components of the smart window systembased on the electronic model of the building. In some embodiments, theprocessing device determines the physical linking based on the electricmodel of the building.

In some embodiments, responsive to user input via the GUI, theprocessing device configures the application linking of one or more ofthe electrochromic devices. For example, the user input (e.g., thatcauses the application linking) may indicate that two or moreelectrochromic devices are to be in the same group (e.g., theelectrochromic devices are to each be set at the same tint levelresponsive to user input) or the same scene (e.g., a first subset of theelectrochromic devices is to be set at a first tint level and a secondsubset of the electrochromic devices is to be set at a second tint levelbased on user input). The electrochromic devices in the same applicationlinking may be controlled together. In some embodiments, theelectrochromic devices in the same group (e.g., specified by theapplication linking) are to change tint level at the same time (e.g.,simultaneously, concurrently) and/or at the same rate. In someembodiments, a first subset of electrochromic devices (and/or a secondsubset of electrochromic devices) in the same scene (e.g., specified bythe application linking) are to change tint level at the same time(e.g., simultaneously, concurrently) and/or at the same rate (e.g., thefirst subset at a first rate and the second subset at a second rate).

In some embodiments, the processing device is to perform troubleshootingof one or more of the physical linking, network linking, or applicationlinking responsive to user input via the GUI. For example, theprocessing device may indicate that the amount of drivers linked to agateway have exceeded a threshold amount of drivers.

In some embodiments, the processing device may display a correspondingcurrent state of each of the components of the smart window system viathe GUI. For example, the processing device may display one or more of:which of the electrochromic devices is changing tint level, which of thedrivers is being updated, which of the components of the smart windowsystem is online, the corresponding mode of each of the electrochromicdevices (e.g., glare control mode, manual mode, energy saving mode,etc.), etc.

Aspects of the present disclosure result in technological advantages ofsignificant reduction in energy consumption (e.g., battery consumption),required bandwidth, processor overhead, and so forth. In someembodiments, the technological advantages result from displaying agraphical representation of each of the components of the smart windowsystem, the physical linking, the network linking, and the applicationlinking instead of the user determining the components and physicallinking by physical inspection of the installation, manual adjustment ofthe tint levels, sending multiple inquiries and receiving multipleresponses, etc. In some embodiments, the technological advantages resultfrom determining the components and the physical linking based on anelectronic model of the building instead of being based on manual userinput of each of the components and each corresponding physical linking.The manual user input may be prone to user error where the processingdevice would detect user error, receive re-inputted information, andre-verifying for error, whereas using an electronic model may avoid theerror and corresponding processor overhead. In some embodiments, thetechnological advantages result from configuring linking (e.g.,application linking of electrochromic devices) via the GUI andtroubleshooting the linking instead of allowing the system to run witherrors and malfunction. In some embodiments, the technologicaladvantages result from displaying the current state of each of thecomponents via the GUI instead of a user performing visual inspection ofthe components (e.g., to determine tint level of the electrochromicdevices) and sorting through data received from the components todetermine current state.

FIG. 1 is a block diagram of an electrochromic window system 100 (e.g.,smart window system) that performs cloud-based component linking,according to one embodiment. The electrochromic window system 100includes a first cabinet 108 in which a first distributed energymanagement system (EMS) 102, a first set of drivers 104, and a gateway106 are located. In an alternate embodiment the drivers 104 may beintegrated drivers where one or more drivers are integrated into the ECwindows. Each of the set of drivers 104 is coupled to an individual oneof a set of electrochromic (EC) windows 130. Alternatively, otherelectrochromic devices can be driven by the set of drivers 104. The setof drivers 104 are coupled to the set of EC windows 130 via power cables148 and control wires. The cabinet 108 can be a standard size, such as28″, 42″, or 60″. The cabinet 108 can be located in proximity to the ECwindows 130 or located away from the EC windows 130, such as up to 300feet. The cabinet 108 can be located in a location that reduces wiringcosts. Between each driver and EC window there may be one or more powercables 148 coupled to an anode of the EC window and one or more powercables 148 coupled to a cathode of the EC window. There may be twocontrol wires for sensing the voltage of the EC window (referred toherein as sense voltage or Vsense) and two wires for sequestrationoperations, as described herein. In one embodiment, each driver of theset of drivers 104 can supply up to 8 amps to each EC window of the setof EC windows 130. An external power supply 132 is coupled to provideexternal power to the distributed EMS 102, the set of drivers 104, andthe gateway 106 within the first cabinet 108. For example, 16 AWG 2conductor plenum cables can provide lower voltage (48V) or highervoltage (110-240V) to the first cabinet 108. The external power supply132 can be located in proximity to the first cabinet 108 or farther awayfrom the first cabinet 108, such as up to up to hundreds of feet or upto 1000 feet. In some embodiments, the external power supply 132 isconfigured to supply less than 25% of a maximum power used by the set ofEC windows 130 during switching of one or more of the set of EC windows130. Additional external power supplies can be used to power thecomponents in the first cabinet 108. The external power supply 132 maybe a conventional power supply connected to the power grid or it may bea building battery such as the residential batteries built by Tesla (thePowerwall battery) or LG Chem's RESU battery that obtain energy from asource such as on-site solar energy cells. The external power supply 132may be a combination of the power grid and a building battery.

Although portions of the present disclosure describe the electrochromicwindow system 100 in relation to a distributed EMS, the electrochromicwindow system 100 may include one or more different types of powersources (e.g., a battery, a local power source inside of a driver, amulti-device boost power supply, etc.) in addition to or instead of thedistributed EMS.

In some embodiments, a driver for an EC window may be integrated intothe EC window itself in either the frame of the window, in theintegrated glass unit (IGU) of the EC window, or in the laminated glassunit (LGU) of the EC window.

Each EC window may include an electrochromic panel (e.g., glass or film)that can change transmissivity with the application of electric currentand voltage. The change of transmissivity typically relies on areversible oxidation of a material. Electrochromic units can darken atthe press of a button (e.g., user input via tint selector 120 or 128,dashboard web app 140, dashboard mobile app 142, etc.) or in response toan automatic triggering event and are also often used in automobilerearview mirrors to reduce reflective glare. In some embodiments, uponreceiving user input via the tint selector 120 to tint a first EC windowassociated with a first driver, the tint selector 120 may transmitinstructions to the first driver and the first driver may control thetint level of the EC window. In some embodiments, upon receiving userinput via a user device to tint a first EC window associated with afirst driver, dashboard web app 140 or dashboard mobile app 142 (e.g.,executing on the user device) may transmit the user input to the cloudcomputing system 110, the cloud computing system 110 may transmit theuser input to the gateway 106, and the gateway 106 may transmit the userinput to the first driver to cause the first driver to control the tintlevel of the first EC window. The different transmissivities of the ECwindows may be referred to as tint levels (e.g., 0% tint level is 65%transmissivity, 50% tint level is 21% transmissivity, 100% tint level is2% transmissivity, etc.).

In some embodiments, one or more power sources (e.g., the distributedEMS, a battery, a local power source inside of a driver, a multi-deviceboost power supply, etc.) may provide additional power (e.g., boostpower) to an electrochromic device (e.g., EC window 130) that can besupplied by a main power supply. The one or more power sources maysupport a varied number of EC windows based on geometry and size of theEC windows, how often the EC windows are tinted, as well as how lowother power sources (e.g., the batteries of the distributed EMS 102) canbe discharged.

Each power source (e.g., distributed EMS 102) may supply power to theset of drivers 104 according to a power state of the set of EC window130, as well as the power state of other power sources (e.g.,multi-device boost power supply 208). For example, the distributed EMS102 can supply a first amount of power to the set of drivers 104 from anexternal power supply interface in an idle state of the set of ECwindows 130. Alternatively, the distributed EMS 102 does not supplypower to the set of EC windows 130 in the idle state. In someembodiments the idle power level of an EC window may be zero, forexample when the type of EC device used only requires power to switchfrom one optical transmission state to another optical transmissionstate. The power state information (e.g., idle state, tinted state,transitioning between states, etc.) may be provided to the gateway 106and may be shared with the cloud computing system 110.

The additional power provided by the one or more power sources canenable fast and uniform switching in a variety of conditions, and inparticular when the EC window 130 includes a gradient conductive layer.

An EC window 130 including a gradient transparent conductive layer canhave very fast switching speed (e.g., less than 5 minutes, or less than10 minutes) as well as uniform transitions between states (e.g., wherethe clear state, dark state and all tinted states have delta E acrossthe area of the panel less than 10) by including one or more gradienttransparent conductive layers in each EC device or panel. The term“gradient transparent conductive layer” refers to an electricallyconducting layer with spatially varying sheet resistance, or resistanceto current flow substantially parallel to a major surface of the layer,that varies as a function of position within the electrically conductivelayer. The gradient transparent conductive layer or layers also enablethe driving of an EC window 130 incorporating such a layer at muchhigher voltages so that high amounts of power are required initially todrive fast switching. The gradient transparent conductive layer may be apatterned or graded transparent conductive oxide (TCO) such as indiumtitanium oxide and tantalum tin oxide. In other embodiments, thedistributed EMS 102 can be used in connection with drivers that driveother types of EC windows 130. Additionally, the distributed EMS can beused to drive multi-panel electrochromic windows that include more thanone EC window 130 connected in series or parallel. A multi-panelelectrochromic window may be one where the EC windows 130 are stackedover one another to provide very low transmissivity of light through thedevices, for example less than 1% transmissivity of light or less than0.1% transmissivity of light. Alternatively the multi-panelelectrochromic windows may be “tiled” adjacent to one another such thatmore than one EC window 130 is laminated to a carrier glass substrate toform larger sized windows. In another embodiment a single driver may beused to drive multiple electrochromic windows that may be in a group ofelectrochromic windows. For example a single driver may drive two ormore electrochromic windows.

The gateway 106 is operatively coupled to a cloud computing system 110.A cloud computing system refers to a collection of physical machines(e.g., server devices), that host applications providing one or moreservices to multiple components (e.g., gateway 106, sensor hub 126,drivers 104, distributed EMS 102, user devices executing dashboardmobile app 142 or dashboard web app 140, etc.) via a network. In someimplementations, the applications hosted by cloud computing system 110may provide services (e.g., scheduling, viewing, remote management,glare control, etc.) to users accessing the cloud computing system 110via a network. The applications may allow users to manipulate (e.g.,access, create, edit, store, delete, share, collaborate, print, etc.)electronic documents (e.g., schedules, rules, configurations, glarecontrol, etc.). The cloud computing system 110 may include one or moreserver devices and one or more data stores. The cloud computing system110 may include cloud-based component linking module 224 (e.g., see FIG.2). The cloud-based component linking module 224 may include one or moreapplications, one or more server devices, etc. The cloud computingsystem 110 may include a cloud-based component linking module 224 (seeFIG. 2). The gateway 106 can be hardwired (e.g., via Ethernet) to anetwork device of a local area network, to gain access to a private orpublic network to access the cloud computing system 110. The gateway 106can communicate with the cloud computing system 110 over Cat 5 wiringusing the TCP/IP protocol with TLS (SSL) for secure communications. Thegateway 106 can communicate with the cloud computing system 110 usingsecure communications, such as using IPV4, IPv6, or Transport LayerSecurity (TLS) networking protocols. The cloud computing system 110 canprovide control logic, glare control (e.g., cause tint level of the ECwindows 130 to be set to avoid glare), and configuration for theelectrochromic window system 100. The cloud computing system 110 mayreceive information (e.g., via one or more application programminginterfaces (APIs), weather information, etc.) for providing glarecontrol, etc. The cloud computing system 110 may determine which ECwindows 130 each device (e.g., tint selector 120 or 128, gateway 106,etc.) and each application (e.g., dashboard mobile app 142, dashboardweb app 140, etc.) is authorized to view and/or control and the priorityof control. For example, the cloud computing system 110 may determinethat the tint selector 120 is authorized to control EC windows 130 thatare connected to drivers 104. In another example, the cloud computingsystem 110 may determine that the dashboard mobile app 142 logged in bya first user is authorized to view and control only the first window ofthe EC windows 130. During configuration (e.g., commissioning, set-up byan administrator), the cloud computing system 110 may receiveinstructions of which users and which devices are authorized to controlwhich EC windows 130. In some embodiments, the cloud computing system110 may authorize access by components (e.g., tint selectors 120 and128, gateway 106, etc.) to a wireless mesh network (e.g., duringcommissioning or set-up) and once authorized, subsequent access of thewireless mesh network is not dependent on further authorization (e.g.,components are authorized during commissioning or set-up and do not needfurther authorization to continue accessing).

In some embodiments, the cloud computing system 110 may use machinelearning to provide control of the EC windows 130. In some embodiments,the cloud computing system 110 may include a broker module to receivedata from the gateway 106, sensor hub 126, etc. (e.g., for providingglare control, for providing data visibility) and to transmit data toother gateways 106. In some embodiments, control of the EC windows 130may be distributed over the cloud computing system 110 and the gateway106. For example, the cloud computing system 110 may provide settingsfiles (e.g., a schedule, rules, etc.) to the gateway 106 and the gateway106 may control the EC windows 130 based on the settings files. Thecloud computing system 110 may send additional instructions to thegateway 106 to deviate from the settings files in controlling the ECwindows 130 (e.g., responsive to the cloud computing system 110receiving user input via a dashboard mobile app 142, sensor data via thesensor hub 126, the gateway 106 may provide a conduit for control of theEC windows 130, etc.)

The cloud computing system 110 can provide automation algorithms, dataanalytics, user management, security protocols, and the like. The cloudcomputing system 110 can provide extensive system health monitoring andproactive troubleshooting, as well as provide third-party integrationwithout complicated on-site technical support. The cloud computingsystem 110 can provide a system dashboard to a dashboard web app 140 ona desktop computer, a dashboard mobile app 142 on a personal computingdevice, or both. The dashboard web app 140 and the dashboard mobile app142 can be used to monitor or control the electrochromic window system100. The dashboard web app 140 and the dashboard mobile app 142 areapplications that may be executed on one or more user devices. Forexample, the dashboard mobile app 142 may execute on a mobile userdevice, such as a smart phone or a tablet. The dashboard web app 140 mayexecute on a desktop, laptop, etc. The dashboard web app 140 or thedashboard mobile app 142 (executing on a user device) may receive userinput (e.g., selection of one or more EC windows and a tint level) viathe user device and may transmit the user input to the cloud computingsystem 110. Responsive to determining that the user input is a requestto view information (e.g., monitor current status of components, currentmode of EC windows 130, etc.), the cloud computing system 110 mayretrieve the information and transmit the information to the user deviceto cause the dashboard web app 140 or dashboard mobile app 142 todisplay the requested information. Responsive to determining that theuser input is a request to change operation of one or more components ofthe electrochromic window system 100, such as a request to tint a firstEC window associated with a first driver, the cloud computing system 110may transmit the user input to the gateway 106, the gateway 106 maytransmit the user input to the first driver, and the first driver maycontrol the tint level of the first EC window based on the user input.

The cloud computing system 110 can also interact with other devices ornetworks, such as with a second cloud computing system 146, asillustrated in FIG. 1, that communicates with a voice-controlled device144. For example, the voice-controlled device 144 may receive audiblecommands from a user to control or get a report of the electrochromicwindow system 100. The dashboard web app 140 and the dashboard mobileapp 142 can communicate with the cloud computing system 110 using theTCP/IP protocol with TLS (SSL) and using encryption and authenticationfor secure communications. The cloud computing system 110 can include amicroservice architecture that is exposed through APIs to manageinteraction with onsite components, such as the gateways, drivers, andtint selectors. The cloud computing system 110 can eliminate complicatedonsite networking requirements, as the external control occurs throughthe APIs. The cloud computing system 110 can provide centralized dataaggregation from all deployments to facilitate automation and analytics.The centralized data aggregation of the cloud computing system 110 mayalso include data from the manufacturing, testing, and assembly of theEC Windows 130 and any associated hardware of the electrochromic windowsystem 100 (e.g. drivers 104, gateways 106, etc.). The cloud computingsystem 110 can leverage various authentication and authorizationtechnologies to secure site access. The cloud computing system providesa robust platform that facilitates on-demand load scaling and healthmonitoring. The cloud computing system 110 can also provide a betterpath for onsite workload migration, backed by a robust central cloudstore.

As described above, the gateway 106 communicates directly with the cloudcomputing system 110 through secured channel(s). The gateway 106communicates with the cloud computing system 110 on behalf of the set ofdrivers 104 and the distributed EMS 102. The gateway 106, the set ofdrivers 104, and the distributed EMS 102 communicate with each otherover wireless connections, such as over a secure thread wirelessnetwork. For example, each of these components can communicate usingIEEE 802.15.4, 2.4 GHz, IPv6 mesh network routing (thread). Thesecommunications can be encrypted with 128-bit AES encryption.Alternatively, other mesh networks can be used, as well as otherfrequencies, and encryption techniques.

It should be noted that, after the drivers and the distributed EMS areconfigured via the gateway, the distributed EMS and driver behavior isnot dependent on the gateway for safe operation. That is, the gatewaycan be disconnected and the drivers will not drain the batteries of thedistributed EMS.

As illustrated in FIG. 1, the electrochromic window system 100 mayinclude additional devices, such as a tint selector 120, an occupancysensor 122, an occupancy sensor interface and thread range extender 138,a building sensor 124 (e.g., roof mounted irradiance sensor), and asensor hub 126.

The sensor hub 126 can be powered by an external power supply 136 andcan be hardwired to the local area network, much like the gateway 106.

The occupancy sensor interface, thread range extender 138, and occupancysensor 122 can be powered by an external power supply and can send orreceive signals to or from a lighting system or a building managementsystem (BMS). The tint selector 120 and occupancy sensor interface andthread range extender 138 can communicate with other devices on thewireless mesh network.

The tint selector 120 can be a device that is mounted on a wall where auser can activate a transition of one or more EC windows 130. The tintselector 120 can be mounted or otherwise disposed in a building havingthe EC windows 130 to permit user control of one or more EC windows 130(e.g., the set of EC windows). The tint selector 120 can be programmedto be part of group of EC windows (e.g., a set of windows that are to beset at the same tint level, e.g., all EC windows in the group tinted50%). That is the tint selector 120 can be associated with the set ofdrivers 104 and the gateway 106. Alternatively, the tint selector 120can be associated with a scene of one or more EC windows. Upon receivinguser input (e.g., via the tint selector 120) for EC windows to be tintedin a scene, one or more first EC windows of the scene are to be tintedat a first tint level and one or more second EC windows of the scene areto be tinted at a second tint level (e.g., all EC windows of the sceneare to be tinted 100% except for one EC window of the scene that is tobe tinted 50%). Upon receiving user input, the tint selector maytransmit (e.g., multicast) a signal to the corresponding drivers tocause the EC windows to change tint level. The tint selector may alsotransmit the user input to the gateway 106 to cause the gateway totransmit the user input to the cloud computing system 110.

The electrochromic window system 100 can include one or more additionaltint selectors, such as illustrated in FIG. 1 by a second tint selector128 that is also wirelessly coupled to the wireless mesh network. Thesecond tint selector 128 can be associated with the same group or sceneas the tint selector 120. Alternatively, the second tint selector 128can be associated with a different group or a different scene as thetint selector 120.

In a further embodiment, the electrochromic window system 100 caninclude one or more cabinets, such as illustrated in FIG. 1 with asecond cabinet 118. The second cabinet 118 can include a seconddistributed EMS 112 and a second set of drivers 114. In some cases, thesecond cabinet 118 does not include a second gateway and the gateway 106manages the second set of drivers 114 as well. An external power supply134 is coupled to provide external power to the second distributed EMS112 and the second set of drivers 114 within the second cabinet 118. Forexample, 16 AWG 2 conductor plenum cables can provide lower voltage(48V) or higher voltage (110-240V) to the second cabinet 118. Theexternal power supply 134 can be located in proximity to the secondcabinet 118 or farther away from the second cabinet 118, such as up to350 feet. In other cases, more than two cabinets may be used. It shouldalso be noted that additional external power supplies can be used topower the components in the cabinet 108 and the second cabinet 118.

Each component of the electrochromic window system 100 can be designedto automatically obtain critical operating data from the cloud computingsystem 110 to avoid a single failure requiring significant maintenancedowntime. Although various components are illustrated in FIG. 1, inother embodiments, the electrochromic window system 100 may include moreor less components than as illustrated in FIG. 1.

In another embodiment, the electrochromic window system 100 includesdrivers 160 located at each of the set of EC windows 130, instead of orin addition to the set of drivers 104 in the first cabinet 108. In somecases, each EC window 130 has a driver 160, as illustrated. In othercases, a single driver 160 can drive multiple EC windows 130. Thedrivers 160 can be coupled to an external power supply. The externalpower supply can be located at the EC window 130 or in close proximity.In this case, the external power supplies for the set of EC windows 130can be considered to be distributed, instead of centralized as describedabove. In other cases, the drivers 160 do not use an external powersupply.

It should be noted that various embodiments described herein aredescribed with respect to a commercial installation. In otherembodiments, the electrochromic window system 100 can be deployed in aresidential installation. In those cases, there may be modifications tothe electrochromic window system 100 as described above to accommodatedifferences between the commercial installation and the residentialinstallation.

In some embodiments (e.g., residential installations), one or more ofthe components of the electrochromic window system 100 may be combined.For example, one piece of hardware may include a gateway and two or moreelectrochromic windows (e.g., hardware that includes a gateway and oneor more drivers). In some embodiments (e.g., residential installations),the gateway may transmit data less frequently and/or transmit less data.In some examples, the gateway transmits data at a predetermined point intime (e.g., without transmitting a subset of the data streamimmediately). In some examples, the gateway discards a subset of thedata stream (e.g., does not store the subset in the file (data file) tobe transmitted to the server device. In some examples, the gatewaystores the data stream or a subset of the data stream locally (e.g.,instead of transmitting the data stream to the server device). In someembodiments, the gateway transmits a subset of the data stream to theserver device responsive to a request (e.g., specifying particular typesof events, errors, malfunctions, etc.) from the server device (e.g.,otherwise the gateway stores and/or discards data). In some embodiments,the gateway dynamically configures what data is transmitted (e.g., basedon bandwidth, storage, cost, etc.). In some embodiments, the gatewaytransmits and/or stores the data that changes (e.g., changes over time,varies from a schedule, that is not redundant, changes from last stateof interest, reportable change, anomalous behavior, manually overridinga tinting schedule, etc.).

In some embodiments, one or more of a corresponding tint selector 120,driver 104, one or more EC windows 130, occupancy sensor, etc. arelocated in each unit (e.g., townhome, apartment, portion ofprefabricated building, portion of modular building) and a commongateway 106 is located in a central location (e.g., hallway, mechanicalroom, etc.). Thread range extenders may be used for the common gateway106 to communicate with the other components. A user may have access toa user account and a tint selector that only control EC windows 130corresponding to the unit to which the user has access.

In some embodiments, one or more components (e.g., gateway 106, sensorhub 126, etc.) of the electrochromic window system 100 may have two ormore network connections. In some examples, two or more wired networkconnections (e.g., each corresponding to a different network) may berouted to the same component. In some examples, a wired networkconnection and a wireless network connection (e.g., each correspondingto a different network) may be provided to the same component. In someexamples, two or more wireless network connections (e.g., eachcorresponding to a different network) may be provided to the samecomponent. A first network may be a primary network (e.g., cablenetwork, Ethernet network, etc.) and a second network may be a cellmodem backup network (e.g., integrated cellular modular in the cabinet).The cabinet 108 may have a router for receiving the different networkconnections. The one or more networks to which components of theelectrochromic window system 100 are connected may be separate fromother building networks.

In some embodiments, one or more components (e.g., gateway 106, sensorhub 126, etc.) of the electrochromic window system 100 transmit andreceive data via the network that is functioning (e.g., if the primarynetwork is down, the cell modem backup network is used). In someembodiments, one network (e.g., cable network) has a lower price than abackup network (e.g., cell modem backup network). The components of theelectrochromic window system 100 may send higher priority data viawhichever network is functioning and may wait until the lower-pricenetwork is functioning to transmit lower priority data. In someembodiments, one or more components (e.g., gateway 106, sensor hub 126,etc.) of the electrochromic window system 100 are aware of which networkconnection is functioning. In some embodiments, one or more components(e.g., gateway 106, sensor hub 126, etc.) of the electrochromic windowsystem 100 transmit a message to the cloud computing system 110 (e.g.,requesting via which network the cloud computing system 110 is receivingthe message) and the cloud computing system 110 may provide a responseindicating via which network (e.g., hardwired network or cellularnetwork) the message was received. The component of the electrochromicwindow system 100 may determine which network is functioning based onthe response.

In some embodiments, one or more components of the electrochromic windowsystem 100 use wireless power (e.g., wireless power transfer (WPT),non-wired power). The wireless transfer of power may be via induction(e.g., electromagnetic induction, inductive coupling of magnetic fields,non-radiative induction), resonance (e.g., radiative electromagneticresonance, resonance induction), radio frequency (RF) power transfer(e.g., uncoupled RF wireless power transfer), microwave power transfer,and/or laser power transfer. For example, a driver may wirelesslytransmit power to an EC window 130.

In some embodiments, one or more of the EC windows 130 are photovoltaic(PV) windows (e.g., PV EC windows) that include a PV coating coupled toa battery. The PV coating may collect energy from the sun and charge thebattery. The battery, wireless power, and/or an external power supply(e.g., via one or more drivers, via distributed EMS, etc.) may be usedto tint the EC window (e.g., the battery may be used first and then oneor more drivers may be used as a backup power supply).

FIG. 2 is a block diagram of an electrochromic window system 200 (e.g.,smart window system) including a cloud-based component linking module224 and a broker module 222, according to certain embodiments.Components with the same reference number as those in FIG. 1 may includesimilar or the same functionalities as those described in relation toFIG. 1. One or more modules, functionalities, data stores, etc. of cloudcomputing system 110 may be provided by a third party service. In someembodiments, the broker module 222 may be provided by a third party(e.g., a third party on-demand cloud computing platform provider). Insome embodiments, the broker module 222 is provided by the same entitythat provides the cloud-based component linking module 224. In someembodiments, the cloud-based component linking module 224 is a singlemodule that operates on the cloud computing system 110. In someembodiments, the cloud-based component linking module 224 includes twoor more modules (e.g., two or more microservices). For example, thecloud-based component linking module 224 (e.g., logic, schedules,trained machine learning model, a retrained machine learning model,etc.) may be deployed at the gateway 106. Components of theelectrochromic window system 200 may have a wired and/or wirelessconnection to one or more other components of the electrochromic windowsystem 200. For example, the gateway may have a wired and/or wirelessconnection to one or more of the distributed EMS 102, one or moredrivers 104, sensor hub 126, exterior sensor 216, interior sensor 206,tint selector 120, and/or one or more EC windows 130. Each of thecomponents of the electrochromic window system 200 may have one or morewireless interfaces, one or more wired interfaces, or any combinationthereof. For example, one or more components of the electrochromicwindow system 200 may include one or more radios, one or more wiredtransceivers (e.g., Universal Asynchronous Receiver/Transmitter (UART),power line communication (PLC) transceiver), or the like. One or morecomponents (e.g., drivers 104, the gateway 106, the tint selector 120,or the like) of the electrochromic window system 200 may communicateover one or more wired connections or even over power lines.

One or more modules, functionalities, data stores, etc. of cloudcomputing system 110 may be provided by a third party service. In someembodiments, the broker module 222 may be provided by a third party(e.g., a third party on-demand cloud computing platform provider). Insome embodiments, the broker module 222 is provided by the same entitythat provides the cloud computing module 224. In some embodiments, thecloud-based component linking module 224 is a single module thatoperates on the cloud computing system 110. In some embodiments, thecloud-based component linking module 224 includes two or more modules(e.g., two or more microservices, two or more applications). In someembodiments, the cloud-based component linking module 224 may includeone or more applications and one or more servers.

The electrochromic window system 200 may include the cloud computingsystem 110 and components including one or more of drivers 104, one ormore gateways 106, EC windows 130 (e.g., PV EC windows, battery coupledto PV coating, etc.), distributed EMS 102, tint selector 120, interiorsensors 206, sensor hub 126, exterior sensors 216, components associatedwith wireless power transfer, etc. The cloud computing system 110 mayinclude the cloud-based component linking module 224 and the brokermodule 222. The cloud-based component linking module 224 may identifythe components of the electrochromic window system 200 (e.g., via brokermodule 222).

The cloud computing system 110 is coupled to one or more gateways 106, asensor hub 126, a dashboard web app 140, and a dashboard mobile app 142.Each gateway 106 may be coupled via a corresponding wireless meshnetwork to drivers 104, interior sensors 206 (e.g., occupancy sensor122, occupancy sensor interface and thread range extender 138, etc.),one or more tint selectors 120, and the distributed EMS 102. The gateway106 may include characteristics of one or more of a hub, proxy, oraggregator. A sensor hub 126 may be coupled to one or more exteriorsensors 216. The drivers 104, distributed EMS 102, tint selector 120,and interior sensors 206 may be disposed proximate the gateway 106(e.g., within the building, within range of the wireless mesh network,etc.). The interior sensors 206 may include one or more of interiorlight sensors, a sensor on a window to collect EC window 130transmittance data, sensors to collect photographic data from interiorof building, occupancy sensors, etc. The exterior sensors 216 may bedisposed proximate sensor hub 126 (e.g., proximate the roof of thebuilding, on the roof, proximate the edge of the roof, etc.). Theexterior sensors 216 may include one or more of light sensors on thesides of buildings, temperature and/or humidity sensors, sensors (orcameras) to collect photographic data of cloud cover (or irradiance),irradiance sensor, rooftop pyranometer sensor (e.g., measure totalglobal irradiance, measure diffuse horizontal irradiance (shadowedlight, diffuse horizontal irradiance (DHI)), calculate direct normalirradiance, include non-visible spectrum), etc. DHI may refer to theterrestrial irradiance received by a surface (e.g., horizontal surface)which has been scattered or diffused by the atmosphere. DHI may be acomponent of global horizontal irradiance which may not come from thebeam of the sun (e.g., beam may be about a 5-degree field of viewconcentric around the sun).

In some embodiments, a sensor (e.g., interior sensor 206, exteriorsensor 216) transmits sensor data to the gateway 106. For example, oneor more exterior sensors 216 (e.g., camera, temperature sensor,illuminance sensor, humidity sensor, pressure sensor, rain sensor, orthe like) may be mounted on the roof and may transmit data (e.g., sensordata, images, etc.) to the gateway 106. In some embodiments, an exteriorsensor 216 is coupled (e.g., wirelessly, wired, etc.) with the gateway106 (e.g., without use of a sensor hub 126). In some embodiments, anexterior sensor 216 communicates with cloud computing system 110 (e.g.,without use of a sensor hub 126, without use of gateway 106). In someembodiments, a sensor (e.g., interior sensor 206, exterior sensor 216)has a wireless module to be able to communicate with the cloud computingsystem 110 and/or other components (e.g., sensor hub 126, gateway 106,etc.). In some embodiments, one or more exterior sensors 216 and asensor hub 126 may be integrated into a single component that has thefunctionalities of exterior sensors 216 and the sensor hub 126.

Each gateway 106 may be coupled, via a corresponding wireless meshnetwork, to corresponding drivers 104 that control corresponding ECwindows 130. For example, gateway 106 a may be coupled, via a firstwireless mesh network, to drivers 104 a that control EC windows 130 aand gateway 106 b may be coupled, via a second wireless mesh network, todrivers 104 b that control EC windows 130 b (e.g., the EC windows 130span more than one wireless mesh network). The drivers 104 a may becoupled to a gateway 106 a and drivers 104 b to gateway 106 b because ofcapacities (e.g., capacity of each gateway 106, cabinet 108, distributedEMS 102, wireless mesh network, etc.), length of cables, etc.

The cloud-based component linking module 224 may determine physicallinking, network linking, and application linking of two or more of thecomponents of the of the electrochromic window system 200.

Two or more components of the electrochromic window system 200 may bephysically linked (e.g., have a corresponding physical linking). Eachdriver 104 may be physically linked to a corresponding EC window 130.Each distributed EMS 102 may be physically linked to one or more of adriver(s) 104 or a gateway 106. Exterior sensors 216 may be physicallylinked to a sensor hub 126 and/or to the gateway 106.

Two or more components of the electrochromic window system 200 may belinked via a network (e.g., have a network linking). Interior sensors206, tint selector 120, distributed EMS 102, drivers 104 a, and gateway106 a may be linked via a first wireless mesh network. Distributed EMS102 b, drivers 104 b, and gateway 106 b may be linked via a secondwireless mesh network. In some embodiments, one or more exterior sensors216 are linked to one or more gateways 106 via one or more wireless meshnetworks (e.g., via one or more range extenders). Components associatedwith wireless power transfer may be linked via a network with othercomponents (e.g., EC windows 130).

Two or more components of the electrochromic window system 200 may havean application linking. An application linking may be associated with agroup of EC windows 130. EC windows 130 in a group are to be controlledtogether (e.g., all EC windows 130 in a group change to the same tintlevel, all EC windows 130 in a group controlled by the same mode, etc.).For example, EC windows 130 a may be in a group. Responsive to userselection of a tint level via tint selector 120, each of the EC windows130 a changes to the selected tint level.

An application linking may be associated with a scene of EC windows 130.EC windows 130 in a scene include a first subset of the EC windows 130that are to be set to a first tint level and a second subset of the ECwindows that are to be set to a second tint level different from thefirst tint level (e.g., one EC window is cleared and the rest of the ECwindows are tinted, first subset controlled by a first mode and secondsubset controlled by a second mode, etc.). For example, EC windows 130 bmay be in a scene. Responsive to user selection of the scene (e.g., viatint selector 120, dashboard web app 140, dashboard mobile app 142), afirst EC window of EC windows 130 b may be set to a first tint level anda second EC window of EC windows 130 b may be set to a second tintlevel.

The cloud-based component linking module 224 may display (e.g., via aGUI displayed on dashboard web app 140, dashboard mobile app 142, etc.),a graphical representation of the components of the electrochromicwindow system 200, the physical linking, the network linking, and theapplication linking. The cloud-based component linking module 224 maydetermine that a first component of the electrochromic window system 200is to be replaced by a new component. For example, the cloud-basedcomponent linking module 224 may receive (e.g., via the user deviceexecuting the dashboard web app 140 or the dashboard mobile app 142) oneor more of user input that a previous driver is to be replaced by a newdriver, a user-input identifier of one or more of the previous driver orthe new driver, or a scanned identifier of one or more of the previousdriver or the new driver. The cloud-based component linking module 224may identify configurations (e.g., one or more configuration files)corresponding to the component that is to be replaced and cause the newcomponent to be configured based on the configurations. For example, thecloud-based component linking module 224 may identify a driverconfiguration file for the driver that is being replaced and may causethe gateway 106 to configure the new driver based on the configurationfile. The cloud-based component linking module 224 may update the GUIbased on the new component.

In some embodiments, to identify the components of the electrochromicwindow system 200, the cloud-based component linking module 224 receivesan electronic model of at least a portion of a building (e.g., from thedashboard web app 140, the dashboard mobile app 142) and identifies thecomponents based on the electronic model. The electronic model may beone or more of a two-dimensional floor plan, a three-dimensional floorplan, building information modeling (BIM) software model, a physical(e.g., electrical, power distribution) layout, a networking layout, anapplication layout, a layout of the electrochromic window system 200,etc. The electronic model may indicate information (e.g., location,type, size, etc.) of one or more of the components of the electrochromicwindow system 200. The electronic model may indicate linking (e.g.,physical linking, network linking, application linking, etc.) of one ormore of the components of the electrochromic window system 200. Thecloud-based component linking module 224 may process the electronicmodel to determine one or more of the components in the electrochromicwindow system 200, the physical linking of the components in theelectrochromic window system 200, the network linking of the componentsin the electrochromic window system 200, or the application linking ofthe components in the electrochromic window system 200. By using theelectronic model to determine one or more of components or linking, thecloud computing system 110 may avoid increased processor overhead,bandwidth, and energy consumption that results from user error (e.g.,erroneously input information, processing errors, providing errormessages and receiving updated information until there are no errors,etc.). Use of the electronic model to determine one or more componentsor linking may also save user time over manually modelling theelectrochromic window system, troubleshooting, and making changes.

In some embodiments, the cloud-based component linking module 224receives user input via the GUI indicating a new or changed applicationlinking. For example, the cloud-based component linking module 224 mayreceive user input via the GUI indicating that EC windows 130 a and ECwindows 130 b are to be part of the same group or scene. The cloud-basedcomponent linking module 224 configures the application linking based onthe user input and updates the GUI based on the application linking.

In some embodiments, responsive to receiving user input of one or moreof physical linking, network linking, or application linking via theGUI, the cloud-based component linking module 224 performstroubleshooting. The cloud-based component linking module 224 maydetermine one or more of a design error, an inefficient design, a designnot compliant with best practices, etc. For example, the cloud-basedcomponent linking module 224 may determine that the amount of driversphysically linked to a distributed EMS 102 exceed a maximum amount ofallowed drivers. In another example, the cloud-based component linkingmodule 224 may determine that the amount of drivers linked via a firstwireless mesh network to the gateway 106 exceed a maximum amount ofallowed drivers. In another example, the cloud-based component linkingmodule 224 may determine that user input was received requestingapplication linking of components that cannot be in the same group orscene. Responsive to determining the design error or inefficient design,the cloud-based component linking module 224 may perform troubleshootingby providing an alert to the user (e.g., indicating the error,correcting the error, improving the design, providing a suggestion toimprove the design, etc.) via the GUI (e.g., displayed on the dashboardweb app 140 or dashboard mobile app 142).

In some embodiments, the cloud-based component linking module 224 maydetermine a current state of each of the components in theelectrochromic window system 200. In some embodiments, the broker module222 receives data via one or more of gateways 106, the sensor hub 126,the dashboard web app 140, or the dashboard mobile app 142. For example,the broker module 222 may receive data, via a gateway 106, from thedrivers 104, distributed EMS 102, tint selector, interior sensor 206,etc. In another example, the broker module 222 may receive data, via thesensor hub 126, from one or more exterior sensors 216. The cloud-basedcomponent linking module 224 may receive at least a portion of the datareceived by the broker module 222. In some embodiments, the datareceived by the broker module 222 is stored in different databases ofthe cloud computing system 110 (e.g., current and voltage measurementsin a corresponding database, current status in a corresponding database,faults in a corresponding database, etc.) and the cloud-based componentlinking module may retrieve corresponding portions of the data from oneor more of the databases. Based on the data retrieved, the cloud-basedcomponent linking module 224 may determine a current status of each ofthe components of the electrochromic window system 200. For example, thecloud-based component linking module 224 may determine a current mode(e.g., energy saving mode, glare control mode, manual mode) of each ofthe EC windows 130, which components are online (e.g., connected to acorresponding wireless mesh network, connected to the cloud computingsystem 110, transmitted data within a threshold amount of time to thecloud computing system 110, etc.), the current tint level of EC windows130, which components are being updated, etc. The cloud-based componentlinking module 224 may display the current status of each of thecomponents via the GUI. In some embodiments, the cloud-based componentlinking module 224 may display a list of the components of theelectrochromic window system 200 and the current status of each of thecomponents (e.g., a graphical representation of the status next to anidentifier of the component, a graphical representation of online oroffline, a graphical representation of changing tint level or notchanging tint level, a graphical representation of the current mode).

In some embodiments, the broker module 222 receives sensor data (e.g.,from exterior sensor 216 via sensor hub 126, from interior sensor 206via gateway 106 a) or a signal (e.g., from tint selector 120 via gateway106 a, from dashboard web app 140, from dashboard mobile app 142) thatis to be used to control EC windows 130 coupled to different gateways106. In some embodiments, EC windows 130 a associated with gateway 106 aand EC windows 130 b associated with gateway 106 b may be proximate eachother (e.g., located in the same building or in buildings that areproximate to each other). In some embodiments, the broker module 222transmits the sensor data, signal, or instructions based on one or moreof sensor data or the signal to one or more gateways 106. In someembodiments, the cloud-based component linking module 224 may cause theGUI to display an indication of which gateways 106 are using one or moreof the sensor hub 126, exterior sensors 216, interior sensors 206, ortint selector 120. For example, the cloud-based component linking module224 may cause the GUI to indicate that the sensor hub 126 is associatedwith gateway 106 a and gateway 106 b (e.g., sensor data transmitted bythe sensor hub 126 to the cloud computing system 110 is used to controlthe EC windows 130 a and 130 b). In another example, the cloud-basedcomponent linking module 224 may cause the GUI to indicate that tintselector 120 is associated with (e.g., controls) EC windows 130 a and130 b.

Responsive to cloud computing system 110 receiving a signal (e.g., viabroker module 222 from interior sensor 206, tint selector 120, keypad,HVAC system, security system, building management, etc.) that is forcontrolling multiple components (e.g., causing gateways 106 to sendinstructions to drivers 104, causing drivers 104 to control EC windows130, causing tint level of EC windows 130 to change), the cloudcomputing system 110 may transmit instructions to the gateways 106(e.g., via the broker module 222 to cause the drivers 104 to control theEC windows 130). The cloud computing system 110 may receive anindication from the gateways 106 that the instructions were completed(e.g., the drivers 104 controlled the EC windows 130 to change to thetint level defined by the instructions). The cloud-based componentlinking module 224 may update the GUI based on the transmittedinstructions and the indication that the instructions were completed(e.g., EC windows 130 were set to a particular tint level based on theglare control mode and based on sensor data from an exterior sensor 216,etc.).

FIG. 3 is a flow diagram of a method of performing cloud-based componentlinking, according to certain embodiments. The method 300 can beperformed by processing logic that can include hardware (e.g.,processing device, circuitry, dedicated logic, programmable logic,microcode, hardware of a device, integrated circuit, etc.), software(e.g., instructions run or executed on a processing device), or acombination thereof. In some embodiments, the method 300 is performed bythe cloud computing system 110 of FIG. 1 or FIG. 2. In anotherembodiment, the method 300 is performed by a server device of the cloudcomputing system 110. In some embodiments, the method 300 is performedby a processing device of the cloud computing system 110. In someembodiments, the method 300 is performed by a cloud-based componentlinking module 224 of the cloud computing system 110. Although shown ina particular sequence or order, unless otherwise specified, the order ofthe processes can be modified. Thus, the illustrated embodiments shouldbe understood only as examples, and the illustrated processes can beperformed in a different order, and some processes can be performed inparallel. Additionally, one or more processes can be omitted in variousembodiments. Thus, not all processes are required in every embodiment.Other process flows are possible.

Referring to FIG. 3, the method 300 begins at block 302 by theprocessing logic identifying components of a smart window system. In oneembodiment, the processing logic receives an electronic model of atleast a portion of a building corresponding to the smart window system(e.g., a floor plan, a three-dimensional model, a BIM software model,etc.). The processing logic may process the electronic model todetermine the components of the smart window system. For example, theelectronic model may indicate one or more of location, type, or size ofone or more of electrochromic devices (e.g., EC windows 130), frames(e.g., that hold EC windows 130), distributed EMS 102, drivers 104,gateways 106, cabinets 108, sensor hub 126, exterior sensors 216,interior sensors 206, tint selector 120, range extenders, etc. In someembodiments, the processing logic may receive an identifier (e.g.,during installation or commissioning of a smart window system) of eachof the components of the smart window system (e.g., via user input ofthe identifiers, scanning of an identifier of each of the components,etc.).

At block 304, the processing logic determines physical linking of thecomponents of the smart window system. In some embodiments, theprocessing logic determines the physical linking based on the electronicmodel. In some embodiments, the electronic model indicates the locationof the components of the smart window system and which components arephysically linked (e.g., via a power distribution plan, electricalsystem of a BIM software model, etc.). In some embodiments, theelectronic model indicates one or more of the length or type of physicallinks between components. The physical linking may include one or moreof which components are physically linked, the type of physical linkbetween components, the type of data transmitted via the physical linksbetween the components, etc. In some embodiments, the processing logicreceives user input indicating the physical linking of the components.For example, the user input may be via a drop down selection (e.g., fora first driver, user input may indicate that a first EC window of a listof EC windows in a drop down selection is physically linked to the firstdriver). In another example, the user input may be via the order thatcomponents are scanned (e.g., such as scanning a driver 104 and thenscanning an EC window 130 to which the driver is physically linked). Thecomponents may be scanned by a code or marker on the component or by aphoto of the component that can be digitally analyzed to determine thetype of component. In another example, the user input may be viaaugmented reality or virtual reality programs. In some embodiments, theprocessing logic determines the physical linking based on data receivedfrom the components. For example, responsive to receiving via, sensorhub 126, sensor data labeled as originating from a first exteriorsensor, the processing logic may determine that the first exteriorsensor is physically linked to sensor hub 126.

In some embodiments, the processing logic compares one or more of thephysical linking, distance between components that are physicallylinked, or type of physical links to physical linking capabilities(e.g., maximum amount of components, such as drivers 104 and gateway106, that can be coupled to the same distributed EMS 102, maximumdistance of physical links between components, gauge of physical linkbetween particular components over a particular distance, too manydrivers 104 in one cabinet 108, an EC window 130 does not have acorresponding driver 104, a driver 104 is coupled to more than one ECwindow 130, etc.). The processing logic may provide an alert (e.g.,perform troubleshooting) based on one or more of the physical linking,the distance between components that are physically linked, or the typeof physical link not having sufficient physical capability. For example,the processing logic may cause the GUI to provide an indication ofproposed adjustments to the smart window system (e.g., use a largercabinet 108, locate the cabinet 108 closer to the EC windows 130, usemultiple cabinets 108, etc.). In another example, the processing logicmay cause the GUI to provide an indication of the error (e.g., too manycomponents linked to the distributed EMS 102, components are too farfrom each other, gauge of physical linking not sufficient, too manycomponents in the same cabinet 108, etc.).

At block 306, the processing logic determines network linking of thecomponents of the smart window system. In some embodiments, theprocessing logic determines the network linking based on the electronicmodel (e.g., the electronic model includes a network layout). In someembodiments, the electronic model indicates the distance betweencomponents (e.g., between the gateway 106 and the one or more of tintselector 120, drivers 104, distributed EMS 102, interior sensors 206,etc.). In some embodiments, the processing logic determines the networklinking via user input via the GUI. For example, user input may includescanning the identifier of each component that is part of the samewireless mesh network. In another example, user input (e.g., via a dropdown selection or an augmented reality interface) indicates whichwireless mesh network with which each component is associated.

In some embodiments, the processing logic compares the one or more ofnetwork linking or distance between components to networkingcapabilities (e.g., maximum amount of components, such as drivers 104,that can be coupled to the same gateway 106, maximum distance between acomponent and the gateway 106 without a range extender, maximum distancebetween a component and the gateway 106 with a range extender, etc.).The processing logic may provide an alert (e.g., performtroubleshooting) based on one or more of the network linking or thedistance between components exceeding network capabilities. For example,the processing logic may cause the GUI to provide an indication ofproposed adjustments to the smart window system (e.g., add a rangeextender to a wireless mesh network, split the components, such asdrivers 104, between two or more gateways 106, etc.). In anotherexample, the processing logic may cause the GUI to provide an indicationof the error (e.g., too many components, such as drivers 104, coupled tothe same gateway 106, too large of distance between a component and thegateway, etc.).

At block 308, the processing logic determines application linking of thecomponents of the smart window system. In some embodiments, theprocessing logic determines the application linking based on theelectronic model (e.g., the electronic model indicates which EC windows130 are in the same group or scene). In some embodiments, the processinglogic determines the application linking based on user input (e.g.,scanning each of the EC windows 130 that are to be part of the samegroup or scene, dragging and dropping a visual representation of the ECwindows 130 to be in the same group or scene in the GUI, etc.).

In some embodiments, the processing logic compares one or more of theapplication linking or component locations to application capabilities(e.g., application best practices). For example, the processing logicmay determine whether the electrochromic devices have an applicationlinking because the EC windows are proximate each other (e.g., in thesame frame, on the same façade, in the same office or conference room,on the same floor, in the same building, etc.). In another example, theprocessing logic may determine whether the electrochromic devices exceedan application capability (e.g., too many EC windows 130 in the samegroup or scene, etc.). Responsive to determining the application linkingdoes not meet application capabilities (e.g., application bestpractices, performing troubleshooting), the processing logic may providean alert (e.g., a suggestion to fix the error, verifying that the userdesires this application linking, etc.). For example, the processinglogic may verify that the user desires to add two electrochromic devicesfrom two different areas (e.g., suites, rooms, frames, façades, floors,buildings) to the same group or scene. In some embodiments, theprocessing logic may determine that a grouping (e.g., group, scene,frame, cabinet) does not include any components and may provide analert.

At block 310, the processing logic displays, via a GUI, the componentsof the smart window system, the physical linking, the network linking,and the application linking. In some embodiments, the GUI displays alist of the components, grouped by linking (e.g., tree of components).In some embodiments, the components may be displayed via the GUI groupedby wireless mesh network (e.g., distributed EMS 102, drivers 104,gateway 106, tint selector 120, interior sensor 206, etc.). In someembodiments, the components may be displayed in the GUI grouped bycabinet (e.g., distributed EMS 102, drivers 104, gateway 106, etc.),frame (e.g., EC windows 130), and sensor hub 126 (e.g., exterior sensors216 and corresponding sensor hub 126). In some embodiments, thecomponents may be displayed in the GUI grouped by physical proximity(e.g., per building, per floor, per suite, etc.). In some embodiments,the GUI may display details for each component (e.g., upon selection ofthat component), such as one or more of linking (e.g., physical,network, application), attributes (e.g., cable type, cable length,hardware identifier, modes, current status, manufacturing information,tint levels, device configuration), etc.

At block 312, the processing logic determines a first component of thecomponents of the smart window system is to be replaced by a newcomponent. In some embodiments, the processing logic periodicallyreceives data from each of the components. Responsive to not receivingdata from a first component for a threshold amount of time (e.g., andnot receiving responses from the first component responsive to sendingrequests to the first component), the processing logic may determinethat the first component is to be replaced. In some embodiments,responsive to determining errors of the first component (e.g., notresponding correctly to requests, not charging or tinting correctly,providing more than a maximum amount of faults, etc.), the processinglogic may determine that the first component is to be replaced. In someembodiments, responsive to not receiving data from components via afirst component (e.g., not receiving data from drivers 104 via gateway106, not receiving data from exterior sensors 216 via sensor hub 126,etc.), the processing logic may determine the first component is to bereplaced. In some embodiments, the processing logic determines the firstcomponent is to be replaced by receiving an identifier corresponding tothe first component. In some examples, an identifier (e.g., barcode,sticker, RFID tag, etc.) of the first component may be received (e.g.,via scanning, via an RFID reader, optical imaging, etc.). In someembodiments, the processing logic receives user interaction with a GUIentry associated with the first component (e.g., deleting of theidentifier associated with the first component from the GUI, selectingof the field that is or was associated with the first component, etc.).In some embodiments, the physical linking, network linking, andapplication linking associated with the first component is to bemaintained in the GUI to be associated with the new component (e.g.,although the identifier associated with the first component is deletedfrom the GUI, the physical linking, network linking, and applicationlinking remain associated with the field in the GUI that was associatedwith the first component).

The processing logic may receive an identifier of the new component thatis to replace the first component. In some embodiments, an identifier ofthe new component may be scanned. In some embodiments, the identifiermay be entered in the GUI via user input. In some embodiments, theprocessing logic receives user input indicating that the identifier isto be associated with the field that was associated with the firstcomponent.

At block 314, the processing logic causes the new component to beconfigured based on configurations of the first component. Theconfigurations of the first component may be associated with one or moreof physical linking, network linking, or application linking of thefirst component. In some embodiments, the processing logic may identifya configuration file (e.g., stored on the cloud computing system 110,stored by the gateway 106, etc.) corresponding to the first componentand may cause the new component to be configured based on theconfiguration file. The configuration file for an EC window 130 mayindicate configurations of the EC window 130 with regards to thecorresponding driver 104 (e.g., physical linking, network linking)and/or with regards to other EC windows 130 (e.g., application linking).The configuration file for an EC window 130 may indicate information,such as one or more of type of EC window 130, size of EC window 130,speed of tinting the EC window 130, group or scene associated with theEC window 130, etc. The configuration file for a driver 104 may indicateconfigurations of the driver 104 with regards to the correspondingelectrochromic device (e.g., physical linking, application linking, typeof EC window 130, size of EC window 130, speed of tinting the EC window130, group or scene associated with the EC window 130, etc.) and/or withregards to a corresponding gateway 106 (e.g., physical linking, networklinking). The configuration file for a gateway 106 may indicateconfigurations of the gateway 106 with regards to the components thatare coupled to the gateway 106 (e.g., physical linking, networklinking), which types of data are to be transmitted to the cloudcomputing system 110 upon receipt, which types of data are to be storedin a file to be transmitted periodically, default schedules or settings,etc. The configuration file for a sensor hub 126 may indicateconfigurations of the sensor hub 126 with regards to exterior sensors216 that are coupled to the sensor hub 126 (e.g., physical linking), howoften sensor data is to be transmitted to the cloud computing system110, sensor data is to be transmitted to the cloud computing system 110at which times of day, how different types of sensor data are to betransmitted to the cloud computing system 110, etc.

In some embodiments, the processing logic may determine whether thefirst component is replaceable by the new component (e.g., based onidentifiers of the first and new components, based on the first and newcomponents being compatible). In some embodiments, a new component canbe used to replace a first component of a similar version and/orhardware type. For example, a new driver having a first amount of drives(e.g., four drives) may replace a first driver that has an equal orlesser amount of drives (e.g., two drives). In another example, a newdriver having a second amount of drives (e.g., two drives) cannotreplace a first driver that has a greater amount of drives (e.g., fourdrives). Each drive of a driver may be used to control a separate ECwindow or two or more drives may be used to control the same EC window.

In some embodiments, one component may control multiple othercomponents. For example, a single driver may control two or more ECwindows. In some embodiments, the processing logic causes a new driverto be configured to control the two or more EC windows that werecontrolled by the previous driver.

In some embodiments, a new component may be different from the previouscomponent that the new component is replacing. For example, a smaller ECwindow may be replaced by a larger EC window. The processing logic maydetermine the requirements of the new component and may determinewhether the other components of the electrochromic window system cansupport the new component. For example, if the new component is a largerEC window that is to be controlled by two drives, the processing logicmay determine whether there are two drives available to control thelarger EC window. Responsive to determining the other components of theelectrochromic window system cannot support the new component, theprocessing logic may provide an alert (e.g., via the GUI). The alert mayindicate a corrective action that is to be performed (e.g., replace theexisting driver with a driver with more drives, add a new driver,provide a physical connection from two drivers to the larger EC window,etc.).

The processing logic may determine that a component is not performing(e.g., transmitting data, tinting, etc.) when or how it is directed. Theprocessing logic may receive data (e.g., a data tree) and may determinewhere the error started (e.g., gateway stopped transmitting data on aspecific day and at a specific time). The processing logic may determinea corrective action based on where the error started. The processinglogic may provide an alert (e.g., via the GUI) indicating one or more ofthe component where the error originated, when the error started, and/ora corrective action to correct the error.

The processing logic may determine updated settings for one or morecomponents based on replacing a first component with a new componentthat is different from the first component. In some embodiments, if thenew component is an EC window that has a different speed of tinting,different power requirements, and/or the like than the existing ECwindow that is being replaced, the processing logic may determine anupdated speed of tinting for a group of EC windows (e.g., applicationlinking, façade) of which the new EC window will be part. For example,if a new EC window has a slower speed of tinting, the processing logicmay determine to slow the tinting of the entire façade of EC windows. Inanother example, if a new EC window has a higher power requirement, theprocessing logic may determine to slow the tinting of the entire façadeof EC windows (e.g., based on power availability of the site, based onuser priorities of power consumption vs. speed, etc.).

At block 316, the processing logic updates the GUI based on the newcomponent. The processing logic may update the GUI with information(e.g., the identifier, configurations, etc.) of the new component.

The processing logic may determine the current state (e.g., online,mode, current tint level, changing tint level, faults, etc.) of each ofthe components and may update the GUI based on the current state of eachof the components. The processing logic may receive, via the GUI, userinput associated with linking of the components (e.g., applicationlinking, etc.) and may update the GUI based on the user input. Forexample, upon receiving user input of adding the EC windows 130 a and130 b to the same group, the GUI may be updated to reflect the ECwindows 130 a and 130 b are in the same group. Subsequent to updatingthe GUI, the windows 130 a and 130 b may all change to a first tintlevel responsive to corresponding drivers 104 receiving user input viatint selector 120.

In some embodiments, the processing logic may determine a hierarchy(e.g., tree structure) of the components based on one or more ofphysical linking, network linking, or application linking. Theprocessing logic may store the hierarchy in a database on the cloudcomputing system 110. The hierarchy may be used for performing glarecontrol, installation, replacement of components, maintenance, grouping,sending instructions to components (e.g., clearing all EC windows 130 ina building), etc.

FIGS. 4A-J are GUIs for cloud-based component linking, according tocertain embodiments. In some embodiments, at least a first portion ofinformation in one or more of the FIGS. 4A-J may be obtained based onreceiving and processing an electronic model of at least a portion ofthe building. In some embodiments, at least a second portion ofinformation in one or more of the FIGS. 4A-J may be input via userinput. In some embodiments, at least a third portion of information inone or more of the FIGS. 4A-J may be obtained based on one or more of aconfiguration file (e.g., of a driver, gateway, sensor hub, etc.),settings files (e.g., a schedule, rules, etc.), etc. In someembodiments, the cloud computing system 110 may cause a new component tobe configured based on configurations (e.g., of a previous component) inone or more of FIGS. 4A-J. In some embodiments, the cloud computingsystem 110 may configure or update linking of components (e.g.,application linking of EC windows) based on user input via one or moreof FIGS. 4A-J. In some embodiments, the cloud computing system 110 mayperform troubleshooting (e.g., provide alerts to the user) via one ormore of FIGS. 4A-J (e.g., alert the user of too many drivers for onenetwork or distributed EMS, etc.). In some embodiments, one or more ofFIGS. 4A-J may display a current state (e.g., online, changing tintlevel, updating software, transmitted data within a threshold amount oftime, etc.) of one or more of the components.

FIG. 4A is a GUI 400A that displays site architecture of anelectrochromic window system (e.g., one or more of electrochromic windowsystem 100 of FIG. 1, electrochromic window system 200 of FIG. 2, smartwindow system, etc.). A list of potential components (e.g., displayedvia GUI 400A) for the site architecture may include location, façade,frame cabinet, gateway, driver, EC window, tint selector (e.g., keypad),interior sensor (e.g., light sensor), distributed EMS, range extender,and sensor hub.

The components of the site architecture may be organized in a hierarchy(e.g., tree structure) and may be displayed via the GUI 400A. In someembodiments, under a location of the site (e.g., building, suite, officespace, etc.), there may be a sensor hub, range extender, façade,interior sensor, and cabinet. In some embodiments, under a secondlocation (e.g., floor), there may be third location (e.g., office) onthat second location. The cabinet may include one or more of a driver 1,driver 2, gateway, or distributed EMS. The third location (e.g., office)may include a frame. The frame may include EC window 1 and EC window 2.

In some embodiments, components may be added to the hierarchy bydragging components from the list of the site architecture to thehierarchy. For example, EC window may be selected from the list of sitearchitecture and may be dragged to a portion of the hierarchy (e.g.,frame on location 3) to add an EC window to the hierarchy.

The hierarchy includes a tree structure, a name of the component, afirst graphical element (e.g., pencil) for editing a component, a secondgraphical element (e.g., an “x”) for deleting a component. By selectinga component, further details may be displayed.

FIG. 4B is a GUI 400B that displays details of the sensor hub, accordingto certain embodiments. FIG. 4B may be displayed responsive to userinput selecting the sensor hub in the hierarchy displayed on one or moreof the GUIs. GUI 400B may display the actual name, the user createdname, the part ID, and the hardware ID of the sensor hub. In someembodiments, GUI 400B displays the exterior sensors that are physicallylinked to the sensor hub. In some embodiments, GUI 400B displaysconfigurations of the sensor hub.

FIG. 4C is a GUI 400C that displays details of the range extender,according to certain embodiments. FIG. 4C may be displayed responsive touser input selecting the range extender in the hierarchy displayed onone or more of the GUIs. GUI 400C may display the actual name, the usercreated name, the part ID, the hardware ID, and links of the rangeextender. In some embodiments, the links include the network linking(e.g., linked to which wireless mesh network, linked via network towhich gateway, etc.) of the range extender. In some embodiments, a usermay select the gateway to which the range extender is (or is to be)network linked via a drop down selection.

FIG. 4D is a GUI 400D that displays details of the façade, according tocertain embodiments. FIG. 4D may be displayed responsive to user inputselecting the façade in the hierarchy displayed on one or more of theGUIs. A façade may be a portion of a building (e.g., an exterior wall,an exterior wall on one floor, a portion of an exterior wall on onefloor, a wall corresponding to an office or conference room, etc.). GUI400D may display the actual name, the user created name, the orientation(e.g., North, East, South, West, etc.), inclination (e.g., vertical,external leaning, internal leaning, etc.), and components linked to thefaçade. For example, first and second EC windows may have an applicationlinking to the façade. In some embodiments, the GUI 400D indicateswhether the EC windows in the façade are part of the same group, scene,etc.

FIG. 4E is a GUI 400E that displays details of the interior sensor(e.g., light sensor, occupancy sensor, etc.), according to certainembodiments. FIG. 4E may be displayed responsive to user input selectingthe interior sensor in the hierarchy displayed on one or more of theGUIs. GUI 400E may display the actual name, the user created name, thepart ID, the hardware ID, and links of the interior sensor. In someembodiments, the links include the network linking (e.g., linked towhich wireless mesh network, linked via network to which gateway, etc.)of the interior sensor. In some embodiments, a user may select thegateway to which the interior sensor is (or is to be) network linked viaa drop down selection.

FIG. 4F is a GUI 400F that displays details of the first driver,according to certain embodiments. FIG. 4F may be displayed responsive touser input selecting the first driver in the hierarchy displayed on oneor more of the GUIs. GUI 400F may display the actual name, the usercreated name, the part ID, the hardware ID, device configuration, linksof the first driver. In some embodiments, the device configurationdisplayed via GUI 400F include one or more of positive volt drive limit,negative volt drive limit, positive volt sense limit, negative voltsense limit, etc. In some embodiments, the device configuration isentered via user input. In some embodiments, the device configuration ispre-filled by the cloud computing system 110 (e.g., responsive to usinga configuration file of a previous driver, etc.). In some embodiments,the links include the network linking (e.g., linked to which wirelessmesh network, linked via network to which gateway, etc.) of the firstdriver. In some embodiments, a user may select the gateway to which thefirst driver is (or is to be) network linked via a first drop downselection. In some embodiments, the links include the physical linking(e.g., linked to which distributed EMS, EC window, etc.) of the firstdriver. In some embodiments, a user may select the distributed EMS via asecond drop down selection and the EC window via a third drop downselection for the physical linking of the first driver.

FIG. 4G is a GUI 400G that displays details of the gateway, according tocertain embodiments. FIG. 4G may be displayed responsive to user inputselecting the gateway in the hierarchy displayed on one or more of theGUIs. GUI 400G may display the actual name, the user created name, thepart ID, the hardware ID, device configuration, thread configuration,and links of the gateway. In some embodiments, the device configurationdisplayed via GUI 400G includes the node summary push interval (e.g.,how often the gateway is to transmit a summary of activity of componentson the same wireless mesh network). The thread configuration may includethe thread channel (e.g., wireless mesh network) to which the gateway iscoupled. In some embodiments, the device configuration and threadconfiguration are pre-filled by the cloud computing system 110 (e.g.,responsive to using a configuration file of a previous gateway, etc.).In some embodiments, the links include the physical linking (e.g.,linked to which distributed EMS, etc.) of the gateway. In someembodiments, a user may select the distributed EMS via a first drop downselection for the physical linking of the gateway. In some embodiments,the links include the network linking (e.g., linked to which wirelessmesh network, linked via network to which components, etc.) of thegateway. In some embodiments, the GUI 400G (e.g., responsive to userselection, based on the configuration file, etc.) may display thedrivers, interior sensors, range extender, and distributed EMS to whichthe gateway is (or is to be) network linked via corresponding drop downselections. The GUI 400G may have an option to remove the networklinking of the gateway to one or more components.

FIG. 4H is a GUI 400H that displays details of the distributed EMS,according to certain embodiments. FIG. 4H may be displayed responsive touser input selecting the distributed EMS in the hierarchy displayed onthe one or more of the GUIs. GUI 400H may display the actual name, theuser created name, the part ID, the hardware ID, and links of thedistributed EMS. In some embodiments, the links include the networklinking (e.g., linked to which gateway, wireless mesh network, etc.) ofthe distributed EMS. In some embodiments, a user may select the gatewayvia a first drop down selection for the network linking of thedistributed EMS. In some embodiments, the links include the physicallinking (e.g., linked to which gateway and drivers, power linking, etc.)of the distributed EMS. In some embodiments, a user may select thegateway via a second drop down selection, a first driver via a thirddrop down selection, and a second driver via a fourth drop downselection for the physical linking of the distributed EMS. In someembodiments, the GUI 400H (e.g., responsive to user selection, based onthe configuration file, etc.) may display the drivers and gateway towhich the distributed EMS is (or is to be) physically linked. The GUI400H may have an option to remove the physical linking of thedistributed EMS to one or more components.

FIG. 4I is a GUI 400I that displays details of the first EC window,according to certain embodiments. FIG. 4I may be displayed responsive touser input selecting the first EC window in the hierarchy displayed onone or more of the GUIs. GUI 400I may display the actual name, the usercreated name, the part ID, cable length, device configuration, and linksof the first EC window. In some embodiments, the device configurationdisplayed via GUI 400I includes the maximum tint level (e.g., 100%tinted) and the minimum tint level (e.g., 0% tinted, clear). The maximumand minimum tint levels may be input to the GUI 400I via user input. Thelinks may include physical linking (e.g., to first driver) andapplication linking (e.g., to façade). The GUI 400I may also displaymask image (e.g., obstruction mapping, what parts of the window sunlightcan come through, an image). The GUI 400I may also display target setpoint lower and upper direct normal irradiance (DNI) thresholds (e.g.,the target set point for DNI values below the low threshold are setpoint 0, the target set point for DNI values above the high thresholdare set point 8). The GUI 400I may also display position factorweighting (e.g., position factor weighting affects the transmitted DNIvalues and may be between 0 and 1.0, a position factor weighting closerto 0 helps reduce glare when the incident angle of the sun with respectto the window is low), etc.

FIG. 4J is a GUI 400J that displays further details of the first ECwindow, according to certain embodiments. FIG. 4J may be displayedresponsive to user input selecting the first EC window and scrollingdown from FIG. 4I to FIG. 4J. GUI 400J may display obstruction maskparameters (e.g., dimensions in meters, for glare control), such asheader height, sill height, jamb depth, window width, overhang depth,overhang height above window header, extension to left, extension toright, propagation distance, propagation height, etc.

FIG. 5 illustrates a diagrammatic representation of a machine in theexample form of a computer system including a set of instructionsexecutable by a computer system 500 for cloud-based component linkingaccording to any one or more of the methodologies discussed herein. Insome embodiments, computer system 500 is a server device of a cloudcomputing system (e.g., cloud computing system 110 of one or more ofFIGS. 1-3). The computer system 500 may have more or less componentsthan those shown in FIG. 5 (e.g., server device of cloud computingsystem 110 may have fewer components than shown in computer system 500).In one embodiment, the computer system may include instructions toenable execution of the processes and corresponding components shown anddescribed in connection with FIGS. 1-4.

In alternative embodiments, the machine may be connected (e.g.,networked) to other machines in a LAN, an intranet, an extranet, or theInternet. The machine may operate in the capacity of a server machine ina client-server network environment. The machine may be a personalcomputer (PC), a set-top box (STB), a server, a network router, switchor bridge, or any machine capable of executing a set of instructions(sequential or otherwise) that specify actions to be taken by thatmachine. Further, while a single machine is illustrated, the term“machine” shall also be taken to include any collection of machines thatindividually or jointly execute a set (or multiple sets) of instructionsto perform any one or more of the methodologies discussed herein

The example computer system 500 (e.g., cloud computing system 110)includes a processing device (processor) 502, a main memory 504 (e.g.,read-only memory (ROM), flash memory, dynamic random access memory(DRAM) such as synchronous DRAM (SDRAM)), a static memory 506 (e.g.,flash memory, static random access memory (SRAM)), and a data storagedevice 518, which communicate with each other via a bus 530.

Processing device 502 represents one or more general-purpose processingdevices such as a microprocessor, central processing unit, or the like.More particularly, the processing device 502 may be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, or a processor implementing other instruction sets orprocessors implementing a combination of instruction sets. Theprocessing device 502 may also be one or more special-purpose processingdevices such as an application specific integrated circuit (ASIC), afield programmable gate array (FPGA), a digital signal processor (DSP),network processor, or the like. In various implementations of thepresent disclosure, the processing device 502 is configured to executeinstructions for performing the operations and processes describedherein.

The computer system 500 may further include a network interface device508. The computer system 500 also may include a video display unit 510(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), analphanumeric input device 512 (e.g., a keyboard), a cursor controldevice 514 (e.g., a mouse), and a signal generation device 516 (e.g., aspeaker).

The data storage device 518 may include a computer-readable storagemedium 528 (or machine-readable medium) on which is stored one or moresets of instructions embodying any one or more of the methodologies orfunctions described herein. The instructions may also reside, completelyor at least partially, within the main memory 504 and/or withinprocessing logic 526 of the processing device 502 during executionthereof by the computer system 500, the main memory 504 and theprocessing device 502 also constituting computer-readable media.

The instructions may further be transmitted or received over a network520 via the network interface device 508. While the computer-readablestorage medium 528 is shown in an example embodiment to be a singlemedium, the term “computer-readable storage medium” should be taken toinclude a single medium or multiple media (e.g., a centralized ordistributed database, and/or associated caches and servers) that storethe one or more sets of instructions. The term “computer-readablestorage medium” shall also be taken to include any medium that iscapable of storing, encoding or carrying a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present disclosure. The term“computer-readable storage medium” shall accordingly be taken toinclude, but not be limited to, solid-state memories, optical media, andmagnetic media.

The preceding description sets forth numerous specific details such asexamples of specific systems, components, methods, and so forth, inorder to provide a good understanding of several embodiments of thepresent disclosure. It will be apparent to one skilled in the art,however, that at least some embodiments of the present disclosure may bepracticed without these specific details. In other instances, well-knowncomponents or methods are not described in detail or are presented insimple block diagram format in order to avoid unnecessarily obscuringthe present disclosure. Thus, the specific details set forth are merelypresented as examples. Particular implementations may vary from theseexample details and still be contemplated to be within the scope of thepresent disclosure. In the above description, numerous details are setforth.

It will be apparent, however, to one of ordinary skill in the art havingthe benefit of this disclosure, that embodiments of the disclosure maybe practiced without these specific details. In some instances,well-known structures and devices are shown in block diagram form,rather than in detail, in order to avoid obscuring the description.

Some portions of the detailed description are presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to thedesired result. The steps are those requiring physical manipulations ofphysical quantities. Usually, though not necessarily, these quantitiestake the form of electrical, magnetic, or optical signals capable ofbeing stored, transferred, combined, compared, and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as “identifying,” “determining,” “displaying,” “determining,”“causing,” “updating,” “receiving,” “configuring,” “performing,” or thelike, refer to the actions and processes of a computer system, orsimilar electronic computing device, that manipulates and transformsdata represented as physical (e.g., electronic) quantities within thecomputer system's registers and memories into other data similarlyrepresented as physical quantities within the computer system memoriesor registers or other such information storage, transmission or displaydevices.

Embodiments of the disclosure also relate to an apparatus for performingthe operations herein. This apparatus may be specially constructed forthe required purposes, or it may comprise a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in acomputer-readable storage medium, such as, but not limited to, any typeof disk including floppy disks, optical disks, CD-ROMs, andmagnetic-optical disks, read-only memories (ROMs), random accessmemories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any typeof media suitable for storing electronic instructions.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct a more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present embodiments are not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the present disclosure as described herein. It should also be notedthat the terms “when” or the phrase “in response to,” as used herein,should be understood to indicate that there may be intervening time,intervening events, or both before the identified operation isperformed.

It is to be understood that the above description is intended to beillustrative, and not restrictive. Many other embodiments will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the disclosure should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A method comprising: receiving an electronicmodel of at least a portion of a building; identifying, by a processingdevice based on the electronic model of the at least a portion of thebuilding, a plurality of components of a smart window system, theplurality of components comprising a plurality of electrochromicdevices, a plurality of drivers, and a gateway, wherein each driver ofthe plurality of drivers is to control a corresponding electrochromicdevice, and wherein each driver of the plurality of drivers is toreceive corresponding instructions from the gateway via a first wirelessnetwork, the gateway having received the corresponding instructions viaa second wireless network from a cloud computing system that is remotefrom the gateway; determining a first physical linking of a firstelectrochromic device of the plurality of electrochromic devices to afirst driver of the plurality of drivers via a first wired connection, afirst network linking of the first driver to the gateway via the firstwireless network, and application linking of two or more of theplurality of electrochromic devices that are to be controlled together;causing a user device to display, via a graphical user interface (GUI),a graphical representation of: the plurality of components of the smartwindow system; the first physical linking of the first electrochromicdevice to the first driver via the first wired connection; the firstnetwork linking of the first driver to the gateway via the firstwireless network; and the application linking; determining a firstcomponent of the plurality of components is to be replaced by a newcomponent, wherein configurations of the first component are based onone or more of the first physical linking, the first networking linking,or the application linking; causing the new component to be configuredbased on the one or more of the first physical linking, the firstnetworking linking, or the application linking of the first component;and updating the GUI based on the new component that has been configuredbased on the one or more of the first physical linking, the firstnetworking linking, or the application linking of the first component.2. The method of claim 1, wherein: the first component is the firstelectrochromic device, the first driver, or the gateway.
 3. The methodof claim 1, wherein the determining of the first physical linking isbased on the electronic model of the at least a portion of the building.4. The method of claim 1 further comprising: responsive to user inputvia the GUI, configuring the application linking of the two or more ofthe plurality of electrochromic devices that are to be controlledtogether.
 5. The method of claim 1 further comprising: receiving userinput via the GUI; and performing, based on the user input,troubleshooting of one or more of the first physical linking, the firstnetwork linking, or the application linking.
 6. The method of claim 1further comprising: displaying a corresponding current state of each ofthe components of the smart window system via the GUI.
 7. A systemcomprising: a memory; and a processing device coupled to the memory,wherein the processing device is to: receive an electronic model of atleast a portion of a building; identify, based on the electronic modelof the at least a portion of the building, a plurality of components ofa smart window system, the plurality of components comprising aplurality of electrochromic devices, a plurality of drivers, and agateway, wherein each driver of the plurality of drivers is to control acorresponding electrochromic device, and wherein each driver of theplurality of drivers is to receive corresponding instructions from thegateway via a first wireless network, the gateway having received thecorresponding instructions from a cloud computing system that is remotefrom the gateway; determine a first physical linking of a firstelectrochromic device of the plurality of electrochromic devices to afirst driver of the plurality of drivers via a first wired connection, afirst network linking of the first driver to the gateway via the firstwireless network, and application linking of two or more of theplurality of electrochromic devices that are to be controlled together;cause a user device to display, via a graphical user interface (GUI), agraphical representation of: the plurality of components of the smartwindow system; the first physical linking of the first electrochromicdevice to the first driver via the first wired connection; the firstnetwork linking of the first driver to the gateway via the firstwireless network; and the application linking; determine a firstcomponent of the plurality of components is to be replaced by a newcomponent, wherein configurations of the first component are based onone or more of the first physical linking, the first networking linking,or the application linking; cause the new component to be configuredbased on the one or more of the first physical linking, the firstnetworking linking, or the application linking of the first component;and update the GUI based on the new component that has been configuredbased on the one or more of the first physical linking, the firstnetworking linking, or the application linking of the first component.8. The system of claim 7, wherein: the first component is the firstelectrochromic device, the first driver, or the gateway.
 9. The systemof claim 7, wherein the processing device is to determine the firstphysical linking based on the electronic model of the at least a portionof the building.
 10. The system of claim 7, wherein the processingdevice is further to: responsive to user input via the GUI, configurethe application linking of the two or more of the plurality ofelectrochromic devices that are to be controlled together.
 11. Thesystem of claim 7, wherein the processing device is further to: receiveuser input via the GUI; and perform, based on the user input,troubleshooting of one or more of the first physical linking, the firstnetwork linking, or the application linking.
 12. The system of claim 7,wherein the processing device is further to: display a correspondingcurrent state of each of the components of the smart window system viathe GUI.
 13. A non-transitory machine-readable storage medium storinginstructions which, when executed cause a processing device to performoperations comprising: receiving an electronic model of at least aportion of a building; identifying, based on the electronic model of theat least a portion of the building, a plurality of components of a smartwindow system, the plurality of components comprising a plurality ofelectrochromic devices, a plurality of drivers, and a gateway, whereineach driver of the plurality of drivers is to control a correspondingelectrochromic device, and wherein each driver of the plurality ofdrivers is to receive corresponding instructions from the gateway via afirst wireless network, the gateway having received the correspondinginstructions via a second wireless network from a cloud computing systemthat is remote from the gateway; determining a first physical linking ofa first electrochromic device of the plurality of electrochromic devicesto a first driver of the plurality of drivers via a first wiredconnection, a first network linking of the first driver to the gatewayvia the first wireless network, and application linking of two or moreof the plurality of electrochromic devices that are to be controlledtogether; causing a user device to display, via a graphical userinterface (GUI), a graphical representation of: the plurality ofcomponents of the smart window system; the first physical linking of thefirst electrochromic device to the first driver via the first wiredconnection; the first network linking of the first driver to the gatewayvia the first wireless network; and the application linking; determininga first component of the plurality of components is to be replaced by anew component, wherein configurations of the first component are basedon one or more of the first physical linking, the first networkinglinking, or the application linking; causing the new component to beconfigured based on the one or more of the first physical linking, thefirst networking linking, or the application linking of the firstcomponent; and updating the GUI based on the new component that has beenconfigured based on the one or more of the first physical linking, thefirst networking linking, or the application linking of the firstcomponent.
 14. The non-transitory machine-readable storage medium ofclaim 13, wherein the first component is the first electrochromicdevice, the first driver, or the gateway.
 15. The non-transitorymachine-readable storage medium of claim 13, wherein the determining ofthe first physical linking is based on the electronic model of the atleast a portion of the building.
 16. The non-transitory machine-readablestorage medium of claim 13, wherein the operations further comprise:responsive to user input via the GUI, configuring the applicationlinking of the two or more of the plurality of electrochromic devicesthat are to be controlled together.
 17. The non-transitorymachine-readable storage medium of claim 13, wherein the operationsfurther comprise: receiving user input via the GUI; and performing,based on the user input, troubleshooting of one or more of the firstphysical linking, the first network linking, or the application linking.